3 Making The First CD-ROM Having installed the demonstration program on your hard disk, we will take you through some simple steps where you will make a pre-mastered CD-ROM. This demo program behaves identically to RomMaker in that it has the same menu structure and input fields as the RomMaker. Before con- tinuing, we will take a brief tour of the RomMaker help system which you should use extensively. [PICTURE] Figure 3.1 - Sample Help Screen RomMaker's help system is context-sensitive; it provides help based on what you are currently doing and where the mouse is located on the screen. You can get help at any point in one of the following ways: 1. At any time, select the [KEYCAP] in the section at the top right of the screen. RomMaker will open up a window containing general information. You can navigate back and forth through the help system by clicking either the forward or backward arrow situated on the top right corner in the help window. The help system is based on this reference guide and thus contains much of the same information. 2. Alternatively, you can get a full description of a particular field in any form by simply double clicking on the label in a particular section. For instance, suppose you wanted to know more about the field CD-ROM Standard in the Volume Information folder, move the mouse to the text CD-ROM Standard in the Hypercard form/stack and click on the label. Again RomMaker will open up a help window containing the relevant informa- tion. Before we explore, how to make a CD-ROM using the RomMaker, let us take a closer look at how CD-ROM's were made in the past. 3.1 How CD-ROMs were made Historically, creating an Apple HFS CD-ROM volume has been a complex and cumbersome process. Typically, users would ship a dedicated hard disk that had undergone special preparation to ensure that the CD-ROM pro- duced would operate when mounted on a CD-ROM player. Users had to manu- ally perform the following key steps on the hard disk they shipped to a mastering plant: 1. Individually copy all the files/folders from their source to a hard disk which was to be sent to a replication facility. 2. Remove the device driver descriptor map from the hard disk so that the CD-ROM produced would not inadvertently act as a system drive. 3. Defragment the disk so that files scattered over the hard disk would be made more contiguous improving CD-ROM performance. 4. Build a system 7 desktop. 5. Build a system 6 desktop by mounting the disk under system 6 and performing key operations. 6. Delete redundant folders and files such as the Trash folder, Move rename folder and the AppleShare PDS files. CD-ROMs do not have these folders or files. 7. Position all Icons to their correct location each time the CD-ROM was published. 8. Manually resolve aliases on all alias files to ensure that all aliases point to files only on the target CD-ROM. Furthermore, they could not determine application performance from the CD-ROM to optimize CD-ROM layout without producing a physical disk. Even when they had made such check discs, there was no empirical system to help them both identify and locate the more frequently used files on the CD-ROM produced. The process was error prone, cumbersome and often produced non optimized CD-ROM whose performance was often extremely poor. 3.2 Making a CD-ROM with RomMaker The RomMaker automatically performs all of the necessary operations required to ensure that the CD-ROM you produce will not only mount on any CD-ROM player but will be optimized for fast performance. You simply choose from the different options before you make the CD-ROM and the RomMaker will guarantee that the CD-ROM made will run on any CD player. The typical process of making an Apple HFS CD-ROM with the RomMaker requires the following six steps: 1. Define volume characteristics by selecting appropriate desk- top, icon, alias management options. 2. Define a script called the Rom Content Script that identifies the source of your data and the destination name on the CD-ROM and its order on the CD-ROM. 3. Position CD-ROM file/folder Icons. When an HFS CD-ROM is to be published regularly, you can optionally create a database of Icon positions so that each file/folder is always positioned at the same spot each time the CD-ROM is published. This is important since many times, you may have moved the source positions around while preparing the data you wish to place on the CD-ROM. You clearly do not need to do this if the CD-ROM is just one of and not part of a regular publishing cycle. 4. Make CD-ROM Image. In this step, the RomMaker will build an exact image of the CD-ROM on its internal hard disk so that you can mimic the behavior and structure of the CD-ROM exactly before you make a physical CD-ROM. 5. Emulate and test CD-ROM integrity from the CD-ROM disk image. The RomMaker emulation system emulates a CD-ROM drive of your choice so that the performance you observe is exactly that of a particular CD-ROM drive. i.e The emulation system delays access to the hard disk based on the performance characteris- tics of the CD-ROM drive it is emulating. At this step, you can even ask the RomMaker to collect statistics on the access times that may be observed with particular applications to help you optimize the physical position of files on your CD-ROM. 6. Replicate. In this final stage, the RomMaker will produce a CD-ROM from the hard disk image which previously tested and verified. The time taken to replicate a CD-ROM is directly dependent on the amount of data on the CD-ROM -every 10 MB takes a minute to replicate and there is a fixed overhead of four and half minutes for each CD-ROM independent of the amount of data you are copying. The process of making a CD-ROM with RomMaker is relatively simple. You simply pick the options and RomMaker does the rest. You can then test and optimize the CD-ROM before you send it for replication. 3.3 Defining Volume characteristics. [PICTURE] Figure 3.2 - Options available for defining a CD-ROM volume When you run the demonstration software by invoking the Hypercard stack called RomMaker in your RomMaker Demo folder, you will see a screen similar to the one above. There are various Hypercard sections that you can select when defining options for the CD-ROM volume you wish to create. You can select any of these by moving the mouse to the appro- priate label at the bottom of the window and clicking it. These sec- tions are as follows: 1. Volume Information. You must fill in at least the Volume name, Rom Content file and Rom Standard fields in this form to make a CD-ROM. 2. Apple HFS Information. This form is used to select the various options available for an Apple HFS CD-ROM. We will discuss these options in detail later in this section. 3. Publication Information. This form is only used when you are making a ISO 9660 or dual mode CD-ROM. It allows you to specify the location of copyright notices, bibliographic data etc. regarding the contents of the CD-ROM. We will cover the definition of these fields in the next section. 4. System Information. This form defines some system level options allowing you to place boot records, encrypted data etc. on an ISO 9660 CD-ROM. Again these options are not available on a Apple HFS CD-ROM. 5. Date/Time Attributes. In making a CD-ROM, you can specify specific volume attributes for an ISO 9660 volume related to the date/time the CD-ROM was published. This Hypercard form allows you to specify date/time created, date/time modified, expiration date/time and default setting for the date/time stamp for folders and files on the CD-ROM. You do not typi- cally need to change these options unless you wish to hide all the files or fix their timestamps. 6. Miscellaneous Options. These options allow you to change the names of key system files produced by the RomMaker from their default names. For example, the RomMaker will produce during a typical session: * Error file containing all errors reported by the RomMaker. * Log File noting the file name and sources and physical locations of all files placed on the CD- ROM. * Statistics File containing a statistical summary of files accessed on a CD-ROM image to help you opti- mize performance. * Icon Database file containing the icon positions of each file/folder on a CD-ROM. * CD-ROM Drive to emulate. The basic concept behind publishing a CD-ROM with RomMaker is simple. Each CD-ROM is considered to be like a book (or title). The user has to fill in some key attributes of this book like name (Volume Label), content structure (CD-ROM file system standard) etc. Thus, for each CD-ROM title that you publish, you must specify two major sets of criteria to label it. * Title definition. This process involves selecting the various title attributes from the hypercard stacks. You can save these titles and re-use each time you publish that title. This fea- ture is useful, as successive masterings of a title are often quite similar except for an updated date stamp. The Hypercard forms you fill specify the contents of this title file. * Rom Content Script. This process involves scripting a textual file called the Rom Content file which defines the CD-ROM folder structure layout and where the source of the data is for the CD-ROM you wish to make. Each title has an associated CD-ROM content script that must be specified before a CD-ROM can be made When you run the RomMaker demonstration program, it displays the attrib- utes of the title 'Demo Volume' shipped with this demonstration. [PICTURE] Figure 3.3 - Volume Information Section Figure 3.3 shows the Volume Information section which is also the first screen you see when you open the RomMaker. The Volume Information sec- tion contains four data items that are mandatory for creating the title file. You will see additional items in the other sections, all of which are optional. We will make our first CD-ROM using only the four manda- tory items: * Volume Label. This uniquely identifies the CD-ROM electron- ically. It is analogous to a book's title on the front cover. You can enter up to 27 alphabetic characters in this field. This is the volume name of the CD-ROM you will be making. We have called the volume label of our first CD-ROM 'Demo Volume'. You can change this volume label simply by typing another label into the Volume Label field. * Rom Content or Script File. This is the name of the file that contains the script defining the CD-ROM folder structure information. Each title requires an ASCII text file that you will create containing the folder structure of the CD-ROM. The demonstration system has a predefined script stored in the file 'RomMaker Script' located in your RomMaker Demo folder . To examine or modify its contents, simply select the Examine button next to the Rom Content File field. You can create your own script if you so wish by selecting the Create button. In this case, you will be asked to specify a file name that will contain the Rom Content script. If you do this, you will need to specify your own script containing the files you want to put on the CD-ROM image when we pre-master during this demonstration. Note, RomMaker always inserts the full pathname of the filename you have selected into the content file specification field. Later in this section we will examine this content specification file or script which define the structure of the CD-ROM we wish to make. * Rom File System Standard. You will recall from our discussion in Section 1 on file system standards that a Macintosh CD-ROM can be formatted in one of four standards: * Apple HFS * ISO 9660 * Hi-Sierra * Hybrid ISO 9660/Apple HFS If you aren't sure which standard to follow, choose the Apple HFS standard. This will make a CD-ROM that will mount as a standard volume on a Macintosh computer. [PICTURE] Figure 3.4 - Filename options for ISO 9660 CD-ROMs * Filename convention. If you choose a file system standard other than Apple HFS, the RomMaker will automatically show you another set of options. In such cases, you will have to make some decisions on the conversion of filenames to Non Apple HFS standard. The Filename convention field in the Volume Informa- tion form has three choices: * MS-DOS (convert Apple filenames to the eight-dot- three filename convention used by DOS users). * ISO Level 1 (convert Apple filenames to eight-dot- three filename convention and restrict filename characters to the ISO set where only the characters A-Z,0-9, and _ are allowed). * ISO 9660 (ensure that filenames conform to the ISO 9660 filenaming convention). For our first CD-ROM, simply leave the value of the Rom file system standard to the default of Apple HFS. You will thus not see the filename convention selections shown in the above form. You have now defined the title file essentials for making a CD-ROM. Most CD-ROMs will in fact only require these fields. 3.4 Selecting other options Having created a Rom Content script using the editor, let us now look at setting some Apple HFS system options. Select the Apple HFS section and you will see the Hypercard stack shown below. [PICTURE] Figure 3.5 - Apple HFS format options You can pick from four major sets of system options all related to the Apple HFS CD-ROM you are about to make: 1 Desktop Management. Although the RomMaker Software only runs on the System 7 operating system, it does have the capability to produce an HFS CD-ROM that works on System 6. For an Apple HFS to operate correctly, key files called the system desktop files for the respective operating systems must be present on the CD-ROM. The RomMaker creates the System 7 desktop files automatically each time it makes a CD-ROM volume. You can however also create a System 6 desktop as well if you want this CD-ROM to mount as an HFS volume under System 6. To ask RomMaker to build a System 6 desktop, simply select the correct radio button and RomMaker will do the rest. 4. Alias Management. The Macintosh operating system, System 7, allows users to create alias files which point to the original files. When these alias files are copied to the CD-ROM, they can continue to point to the original file which may be on the hard disk. The RomMaker allows you to resolve such aliases so that if the original file was also copied to the CD-ROM, then the alias file is changed according to point to the version of the file on the CD-ROM and not to the original. This option allows you to select whether you wish the RomMaker to resolve aliases. If you decide to allow RomMaker to resolve aliases, then you must decide whether to: * Stop on aliases which are not resolved. This happens when an alias is copied but its original file is not. When this happens, clearly the alias cannot be resolved to a file on the CD-ROM and the RomMaker will put up a dialog box informing you of this event. You can continue or stop processing at this point. * Ignore aliases not resolved. In this case, all aliases not resolved are logged to the volume error file which you may examine at your leisure. In both cases, the aliases not resolved are left pointing to the original file. It is usually not a good idea to have such aliases on the CD-ROM since it is likely that the CD-ROM will be played on a system where this original file may not exist. You are now ready to make a custom CD-ROM according to the specifica- tions selected in the HFS system options. The other volume information sections (i.e. Publication Info, System Info, Date and Time Attributes) are used only when you make an ISO 9660 CD-ROM and will be covered in the next section. 3.5 Creating a Rom Content Script File Each CD-ROM that you publish must have its own title and Rom content script specification. Having specified a simple title by filling in the Hypercard volume information form and HFS options, let us now proceed to define the contents of the CD-ROM (i.e table of contents in a book.). [PICTURE] Figure 3.6 - The RomMaker Editor The content specification phase of creating a CD-ROM requires you to create an ASCII text script file using the editor supplied with Rom- Maker. To invoke the editor, simply select the Examine button next to the content definition file name and you will be placed into the RomMaker editor. Figure 3.6 shows the RomMaker editor screen containing a script supplied with this software. For each file or folder that you want to put on a CD-ROM, the content specification script must contain a single-line entry containing the following information: * The name of the source file/folder on your hard disk or net- work. This tells RomMaker where to look for the files when making the CD-ROM. * The name of the destination file/folder on the CD-ROM. This tells RomMaker where to put the file on the CD-ROM and what to call it. Each content entry has the following structured textual format: "Source File/Folder Name" "CD-ROM File/Folder Name" There are two mandatory parameters and one optional parameter you must specify for each file/folder you wish to put on a CD-ROM. As an example, suppose you wanted to make a simple CD-ROM containing just two files - the source file 'Home' is to be called 'Home Stack' in the root folder of the CD-ROM and the file 'Hypercard' is to be placed in the folder 'Applications' on the CD-ROM. Let us say that both these files reside on our 'Macintosh HD' volume inside the 'Card' folder. The content specification file would contain the following two textual lines which you would input: "Macintosh HD:Card:Home" ":Home Stack" "Macintosh HD:Card:Hypercard" ":Applications:Hypercard" Note the use of the double quote to delimit the complete filename if there are spaces in the source/destination filename or folder. Note also the use of the ':' character to separate each level of the folder tree from its parent. In the above example, the files 'Home' and 'Hypercard' located in the 'Card' folder on the volume 'Macintosh HD' will be copied to the CD-ROM. The file 'Home' will be moved to the root of the volume and renamed 'Home Stack' on the CD-ROM while the file Hypercard will be resident under a folder on the CD-ROM called 'Applications'. This process of specifying files can be cumbersome if you have to indi- vidually specify every file that goes into the CD-ROM. However this is not usually the case since it is likely that your source files are organized into some logical structure and you will in fact be copying groups of files located in specific folders. You can use the scripting system to specify a set of files per line. For example, suppose you wanted to transfer all the files in your CARD folder to a CD-ROM folder called 'Hypercard' folder on the CD-ROM. The content definition file would contain the following entry: "Macintosh HD:Card" ":Hypercard" RomMaker will search the 'Card' folder of the volume 'Macintosh HD' for each file and put those files into the 'Hypercard' folder on the CD-ROM. You can also copy complete folder trees using a single line in your script. To illustrate, suppose you want to make a copy of two of your volumes 'Macintsoh HD' and 'Second Volume' on a CD-ROM. Your Rom Content file would contain the following line: "Macintosh HD:" ":Primary Volume" -f "Second Volume:" ":Secondary Volume" -f The '-f', called an extension flag to the basic script line, tells RomMaker that you want to copy the volume/folder 'Macintosh HD:' in whole with any files or folder underneath the root folder to a CD-ROM folder structure whose top is the folder 'Primary Volume'. The second line in the content specification file simply copies the volume 'Second Volume' to the CD-ROM folder 'Secondary Volume'. The RomMaker supports a variety of these flags that allow you to define attributes for each line in your script file. The list below summarizes the key options. Note you will only need to use these more complex script options in specialized situations. -f The -f or subfolder flag searches the folder tree for all files matching the input file specification. The following command will cause RomMaker to copy all files and folders under the folder 'Doc Data' to a CD-ROM folder 'CD Doc Data': -t The -t or timestamp flag followed by a date and time defines the date and time stamp for the group of files defined by the source file specification. The following command will cause RomMaker to copy the file 'RomMaker Doc" to the CD-ROM root with its time stamp set to December 31st 1990 at 12:00pm: "HD:Doc:RomMaker Doc" ":" -t 12\31\90 12:00 -o The -o or output file flag, followed by one of the attribute types 'n' or 'h', sets the attributes of the output file created on the CD-ROM. On a CD-ROM, you can have normal or hidden files; system files aren't applicable and the read-only flag is always set due to the physical properties of a CD-ROM. The n [normal] or h [hidden] attribute selector overrides any title defaults. The following command will cause RomMaker to copy and hide the file PASSWORD in the CD-ROM root folder: "HD:Password" "Password" -oh -k The -k or keep flag is used to keep the date and time stamp of the original source file. When RomMaker makes a CD-ROM, it uses the defaults specified in the title form for the files as its date and time stamp if you turned the 'keep' attributes check box off. The -k flag lets you override this and keep the original time stamp on specific files/folders . To keep the timestamps on all files, use the Keep Timestamp option in the title form (in- stead of flagging each line in your Rom Content file). -m The -m or marked flag is used to exclude files from a particular search path. To illustrate, suppose that you have folder tree containing some 2000 files and 100 directories most of which you wish to place on a CD-ROM but wish to exclude say 10 fol- ders/files from this search path. The -m or marked flag tells the RomMaker to ignore all filenames and folders whose first and last character of the name are '(' and ')' respectively. Hence all you have to do is to go and bracket the names of the files/folders using the finder and use the -m flag in your script file. -v The -v or version flag is used if your source of data is an ISO 9660 CD-ROM. The filenames on these CD-ROMs have a version number appended to their name. For example, the file "MYFILE.TXT" will show up as "MYFILE.TXT;1" when mounted on a Macintosh. This flag simply instructs the RomMaker to remove the version number from the filename when it puts it out on the HFS CD-ROM. -i the -i or Icon flag enables you to specify an icon for the CD-ROM you make. System 7 allows you to define an Icon for any CD-ROM. To enable this feature, simply create a file containing the icon using ResEdit and then specify this file in the script with the -i flag. Note that if you are copying a complete hard disk volume which has its own icon, RomMaker will automatically copy that icon to the CD-ROM image unless it finds a script line with the -i flag. -x the -x or exclude flag is used only in dual mode CD-ROMs which have both the ISO and Apple HFS file systems on the same CD-ROM. Since a dual mode CD-ROM has two partitions, you may wish to select whether a set of files/folders need to be excluded from a particular file system. The format for this is demonstrated below: "HD:MAC FOLDER" "MAC FOLDER" -f -x ISO "HD:DOS FOLDER" "DOS FOLDER" -f -x HFS "HD:BOTH FOLDER" "BOTH FOLDER" -f In the above script, the first line in the script use the -x (exclude) flag to instruct the RomMaker not to enter these files into the ISO 9660 file system partition since they are clearly Macintosh files. In the second line, the -x flag is used to ensure that the files are not found in the HFS partition. The last line where no -x flag is found (the default) means that the files in that folder are found in both partition. When a dual mode CD-ROM is made, a particular file is copied only once and both the file system entries point to just this once occurrence of the file on the CD-ROM. As a result, if the files are common to both Apple HFS and ISO 9660, each partition appears to hold the maximum allowed per CD-ROM, upto 680MB of data. You can have as many flags as you want on each command line. For example, the Rom Content script line: "Mac HD:Secret Folder" ":Password" -oh -t 01\01\91 12:00 -f -k -m will search the folder tree under 'Secret Folder' for all files exclud- ing all marked files and copy them to the 'Password' folder on the CD-ROM where all the files are hidden and timestamped January 1, 1991 12:00 pm. By combining optional flags on each line in your script, RomMaker sup- ports a powerful mechanism for building your CD-ROM folder structure efficiently and to your satisfaction. To allow comments to be inserted into your script, RomMaker ignores all lines that begin with a semi-colon ';'. [PICTURE] Figure 3.7 - Sample Rom Content File Figure 3.7 shows a sample Rom Content file. This script is shipped with the demonstration. You can use this script if you wish to produce a sample CD-ROM or you can create your own script file like this based on files on your hard disk, and save it as 'My RomMaker Script'. If you do this, you will actually be making a premastered image using your data files rather than the demonstration set shown in Fig 3.7.